package com.hy.service;

import com.hy.Result.ResponseResult;
import com.hy.medicine.UserAddress;

import java.util.List;

/**
 * 用户地址服务接口
 */
public interface UserAddressService {

    /**
     * 获取用户的所有地址
     * @param userId 用户ID
     * @return 地址列表
     */
    ResponseResult getAddressByUserId(Long userId);

    /**
     * 获取地址详情
     * @param addressId 地址ID
     * @return 地址详情
     */
    UserAddress getAddressById(Long addressId);

    /**
     * 获取用户的默认地址
     * @param userId 用户ID
     * @return 默认地址，如果没有则返回null
     */
    UserAddress getDefaultAddress(Long userId);

    /**
     * 新增地址
     * @param address 地址信息
     * @return 新增的地址ID
     */
    Long addAddress(UserAddress address);

    /**
     * 修改地址
     * @param address 地址信息
     * @return 是否成功
     */
    boolean updateAddress(UserAddress address);

    /**
     * 删除地址
     * @param addressId 地址ID
     * @param userId 用户ID（用于安全检查）
     * @return 是否成功
     */
    boolean deleteAddress(Long addressId, Long userId);

    /**
     * 设置默认地址
     * @param addressId 地址ID
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean setDefaultAddress(Long addressId, Long userId);
}
